Data source: https://covidtracking.com/

New Cases

The chart below shows the number of daily new cases. The orange line is a 15-day rolling average. The rolling average suggests that daily new cases calmed after an initial spike, but the past week suggests that the trend could reverse. This has prompted 24-hour news coverage of the “second wave”.

It’s important to remember the context: Black Lives Matter protests have been happening for three weeks. It is a reasonable hypothesis that these protests could cause the virus to spread faster.

Increased testing is another plausible reason. More tests means more cases detected. The charts below plots daily positive and negative cases. The first plot shows the count while the second shows the percentage. While daily testing is rising, new cases are relatively flat. This runs contrary (so far) to predictions made that Memorial Day weekend activities and protests would cause the virus to spread rapidly. The “second wave” appears to be a misunderstanding of the data.

It is also worth noting that the high percent of positive cases in April were likely the result of limited tests being reserved for people with COVID-like symptoms. As testing has increased, a more accurate measure of the infection rate has emerged.

Hospitalizations

A count of daily hospitalizations offer perhaps an easier way to track the risk posed by COVID-19. In the chart below, each bar represents the number of people in the hospital on that day due to the virus. This metric has consistently fallen since April 21, 2020, but has flattened in the last four days. It’s too early to tell what this signifies, but this is perhaps the best number to track.

## Warning: Ignoring 1 observations

Deaths

Similar to hospitalizations, deaths offer a metric that is easier to consume without worrying about sample size issues. One interesting feature of the data is a weekly cycle where most deaths are reported mid week with fewer reported on the weekends. I can only guess at why, but it could be something as simple as the work schedules of hospital clerical staff.

In the chart below, the 15-day moving average smooths out the cyclical pattern and makes the decreasing trend clear. Deaths have also been falling since late April. It’s important to point out that deaths are a lagging indicator. In the event of a second wave, you would expect to see hospitalization rates go up first followed by rising deaths second.

National Summary

Perhaps the most important take away from the above review is that daily hospitalization rates are by far the best statistic to track. They don’t require adjustment based on the amount of testing and they aren’t a lagging indicator like daily deaths.

Most media stories I’m seeing are misrepresenting reality by focusing on the absolute number of new cases. Without adjusting for the amount of testing, this is the worst metric to focus on.

State Data

While the nation as a whole is trending in the right direction, decisions to re-open are made state by state. Fortunately, we can look at the same metrics for each state. Additionally, the actions taken by different states create natural experiments for us to examine.

The table below, for example, shows the percent of positive tests by day for a handful of states. Issues with the daily state data create some noise, but the different patterns are easy to see.

At the state level, comparing absolute deaths would be misleading. Large states like New York and California have more people, which means we expect more deaths in absolute terms. The common way to normalize this data is to look at deaths per one million people. The chart shows that even normalized, the death rate for New York is unlike any other state.

Note: Some states like NJ and PA have single days with worse rates, but their daily data is very noisy.

Contributing Factors

In the sections below, I present several insights into factors that may explain differences between the states.

Lockdowns

Perhaps one of the most important questions was whether or not lockdowns lessened the impact of the virus. This is a very difficult question to answer as I show below.

The following chart is animated to show weekly metrics for each state over time. (All data points are also shown as a faded background.)

  • x-axis: weekly deaths per million population
  • y-axis: weekly positive test percentage
  • size: population (Census ACS)
  • color: lockdown duration (ballotpedia)
## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

There is a lot of information contained in the graphic. Two facts are true but potentially misleading:

  • States that had high severity implemented longer lockdowns.
  • The states without lockdown orders didn’t have high death rates.
    • Iowa (week 9) is the exception to this.

These aren’t terribly interesting, but it’s important not to reverse causality. The severity of the virus determined the lockdown reaction not the other way around. This also highlights why it is so hard to measure whether lockdowns “worked.” Different states reacted differently based on different data.

I cover some of the more interesting insights in the following sections.

Density Impact

Population density is an important factor to consider for infectious diseases. The tables below show the 10 largest states and the 10 densest cities. California and New York stand out both for their total population and the number of dense cities.

State Population
California 39,148,760
Texas 27,885,195
Florida 20,598,139
New York 19,618,453
Illinois 12,821,497
Pennsylvania 12,791,181
Ohio 11,641,879
Georgia 10,297,484
North Carolina 10,155,624
Michigan 9,957,488
City State Density Population
New York New York 28,317/sq mi 8,336,817
San Francisco California 18,569/sq mi 881,549
Jersey City New Jersey 17,848/sq mi 262,075
Paterson New Jersey 17,500/sq mi 145,233
Cambridge Massachusetts 17,289/sq mi 118,927
Daly City California 14,009/sq mi 106,280
Boston Massachusetts 13,938/sq mi 692,600
Miami Florida 12,599/sq mi 467,963
Santa Ana California 12,333/sq mi 332,318
Inglewood California 12,160/sq mi 108,151

The table below

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

## Warning: `line.width` does not currently support multiple values.

Cities by population (and density!): https://en.wikipedia.org/wiki/List_of_United_States_cities_by_population

Also look at weather. NE states got the worst of it.